import java.util.Arrays;
import java.util.Scanner;

/**
 * @Author: LiuHeng
 * @Description:
 * @Date: 2022-08-20 9:41
 */
public class Main{

    /**
     * n种材料修补m个漏洞，最少用多种的材料
     * @param args
     */
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        int[] a = new int[n];
        int[] b = new int[m];
        for (int i = 0; i < n; i++) {
            //需求
            b[i] = in.nextInt();
        }
        for (int i = 0; i < m; i++) {
            //材料
            a[i] = in.nextInt();
        }
        Arrays.sort(a);
        Arrays.sort(b);
        long sum = 0;
        int left = 0, right = 0;
        while(right < n){
            if (a[left] < b[right]){
                while (true){
                    left++;
                    if (left >= m){
                        System.out.println(-1);
                        return;
                    }
                    if (a[left] >= b[right])
                        break;
                }
            }
            sum += a[left];
            right++;
        }
        System.out.println(sum);
    }


//    public static void main(String[] args) {
//        Scanner in = new Scanner(System.in);
//        int n = in.nextInt();
//        int m = in.nextInt();
//        int[] a = new int[n];
//        int[] b = new int[m];
//        for (int i = 0; i < n; i++) {
//            a[i] = in.nextInt();
//        }
//        for (int i = 0; i < m; i++) {
//            b[i] = in.nextInt();
//        }
//        int sum1 = 0, sum2 = 0;
//        for (int i = 0; i < n; i++) {
//            sum1 += Math.abs(a[i]);
//        }
//        for (int i = 0; i < m; i++) {
//            sum2 += Math.abs(b[i]);
//        }
//        System.out.println(Math.abs(sum1 - sum2));
//    }


/**
 * n门考试，p的概率得a分
 * 可以复习m门，复习后100%得分
 * 最高得多少分
 */
/*    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int m = in.nextInt();
        int[] p = new int[n];
        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            p[i] = in.nextInt();
        }
        for (int i = 0; i < n; i++) {
            a[i] = in.nextInt();
        }
        long sum = 0;
        for (int i = 0; i < n; i++) {
            sum += (long) p[i] * a[i];
        }
        int[] temp = new int[n];
        for (int i = 0; i < n; i++) {
            temp[i] = (100 - p[i]) * a[i];
        }
        Arrays.sort(temp);
        for (int i = 0; i < m; i++) {
            sum += (long) temp[n - 1 - i];
        }

        double ans = ((double) sum) /100 ;
        System.out.printf("%f.2",ans);

    }*/

/**
 * 三点定位 曼哈顿距离
 */

//    public static void main(String[] args){
//        Scanner in = new Scanner(System.in);
//        String ns = in.nextLine();
//        int n = Integer.parseInt(ns);
//        int a1 = in.nextInt();
//        int a2 = in.nextInt();
//        int b1 = in.nextInt();
//        int b2 = in.nextInt();
//        int c1 = in.nextInt();
//        int c2 = in.nextInt();
//        int d1 = in.nextInt();
//        int d2 = in.nextInt();
//        int d3 = in.nextInt();
//        int x,y;
//
//        for (int i = 0; i <= d1; i++) {
//            x = a1 - (d1-i);
//            y = a2 -i;
//            if (x >= 1 && x <= n && y >=1 && y <= n)
//                if (isEqual(b1-x,b2-y,d2) && isEqual(c1-x,c2-y,d3) ){
//                    System.out.println(x + " " + y);
//                    return;
//                }
//            x = a1 - (d1-i);
//            y = a2 + i;
//            if (x >= 1 && x <= n && y >=1 && y <= n)
//                if (isEqual(b1-x,b2-y,d2) && isEqual(c1-x,c2-y,d3) ){
//                    System.out.println(x + " " + y);
//                    return;
//                }
//
//        }
//        for (int i = d1 - 1; i >= 0; i--) {
//            x = a1 + (d1-i);
//            y = a2 - i;
//            if (x >= 1 && x <= n && y >=1 && y <= n)
//                if (isEqual(b1-x,b2-y,d2) && isEqual(c1-x,c2-y,d3) ){
//                    System.out.println(x + " " + y);
//                    return;
//                }
//            x = a1 + (d1-i);
//            y = a2 + i;
//            if (x >= 1 && x <= n && y >=1 && y <= n)
//                if (isEqual(b1-x,b2-y,d2) && isEqual(c1-x,c2-y,d3) ){
//                    System.out.println(x + " " + y);
//                    return;
//                }
//        }
//
//    }
//    public static boolean isEqual(int a1,int a2,int d){
//        if (Math.abs(a1) + Math.abs(a2) == d)
//            return true;
//        return false;
//    }


/*    public static void main(String[] args){
        Scanner in = new Scanner(System.in);
        String ns = in.nextLine();
        int n = Integer.parseInt(ns);
        String a = in.nextLine();
        String b = in.nextLine();
        StringBuffer ans = new StringBuffer(n * 2);
        for (int i = 0; i < n; i++) {
            ans.append(a.charAt(i));
            ans.append(b.charAt(i));
        }
        System.out.println(ans);
    }*/
}